Now we can summarize the key features of polymorphism:
  • The class membership of an polymorphic object may change over time.
  • In consequence the behavior of the polymorphic object may change, too. But the user of the polymorphic object can call the methods uniformly and need not distinguish the several cases explicitly.

Polymorphism is a very powerful feature if it is properly used and can save much development and maintenance time & cost, although this might not be very obvious from this small example. The benefits of polymorphism increase with the complexity of the project.